<!DOCTYPE html>
<html lang="en-US" dir="ltr">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width,initial-scale=1">
    <title>Constructor | SimpleMindMap</title>
    <meta name="description" content="A powerful web mind map">
    <meta name="generator" content="VitePress v1.3.3">
    <link rel="preload stylesheet" href="/mind-map-docs/assets/style.m6R34cWr.css" as="style">
    
    <script type="module" src="/mind-map-docs/assets/app.CayW-_xc.js"></script>
    <link rel="preload" href="/mind-map-docs/assets/inter-roman-latin.Di8DUHzh.woff2" as="font" type="font/woff2" crossorigin="">
    <link rel="modulepreload" href="/mind-map-docs/assets/chunks/theme.iyWGNaji.js">
    <link rel="modulepreload" href="/mind-map-docs/assets/chunks/framework.B358x4hV.js">
    <link rel="modulepreload" href="/mind-map-docs/assets/en_api_constructor_constructor-methods.md.Dc9Zw2sR.lean.js">
    <link rel="icon" href="/mind-map-docs/logo.png">
    <script src="//sdk.51.la/js-sdk-pro.min.js" charset="UTF-8" id="LA_COLLECT"></script>
    <script>try{LA.init({id:"KRO0WxK8GT66tYCQ",ck:"KRO0WxK8GT66tYCQ",autoTrack:!1})}catch(t){console.log(t)}</script>
    <script id="check-dark-mode">(()=>{const e=localStorage.getItem("vitepress-theme-appearance")||"auto",a=window.matchMedia("(prefers-color-scheme: dark)").matches;(!e||e==="auto"?a:e==="dark")&&document.documentElement.classList.add("dark")})();</script>
    <script id="check-mac-os">document.documentElement.classList.toggle("mac",/Mac|iPhone|iPod|iPad/i.test(navigator.platform));</script>
  </head>
  <body>
    <div id="app"><div class="Layout" data-v-5d98c3a5><!--[--><!--]--><!--[--><span tabindex="-1" data-v-0f60ec36></span><a href="#VPContent" class="VPSkipLink visually-hidden" data-v-0f60ec36> Skip to content </a><!--]--><!----><header class="VPNav" data-v-5d98c3a5 data-v-ae24b3ad><div class="VPNavBar has-sidebar top" data-v-ae24b3ad data-v-6aa21345><div class="wrapper" data-v-6aa21345><div class="container" data-v-6aa21345><div class="title" data-v-6aa21345><div class="VPNavBarTitle has-sidebar" data-v-6aa21345 data-v-ab179fa1><a class="title" href="/mind-map-docs/en/" data-v-ab179fa1><!--[--><!--]--><!--[--><img class="VPImage logo" src="/mind-map-docs/logo.png" alt data-v-8426fc1a><!--]--><span data-v-ab179fa1>SimpleMindMap</span><!--[--><!--]--></a></div></div><div class="content" data-v-6aa21345><div class="content-body" data-v-6aa21345><!--[--><!--]--><div class="VPNavBarSearch search" data-v-6aa21345><!--[--><!----><div id="local-search"><button type="button" class="DocSearch DocSearch-Button" aria-label="Search"><span class="DocSearch-Button-Container"><span class="vp-icon DocSearch-Search-Icon"></span><span class="DocSearch-Button-Placeholder">Search</span></span><span class="DocSearch-Button-Keys"><kbd class="DocSearch-Button-Key"></kbd><kbd class="DocSearch-Button-Key">K</kbd></span></button></div><!--]--></div><nav aria-labelledby="main-nav-aria-label" class="VPNavBarMenu menu" data-v-6aa21345 data-v-dc692963><span id="main-nav-aria-label" class="visually-hidden" data-v-dc692963> Main Navigation </span><!--[--><!--[--><a class="VPLink link vp-external-link-icon VPNavBarMenuLink" href="https://wanglin2.github.io/mind-map/" target="_blank" rel="noreferrer" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Online use</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/en/client.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Client</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/cloudStorage.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Cloud storage</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/en/start/introduction.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Start</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/course/course1.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Course</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink active" href="/mind-map-docs/en/api/constructor/constructor-options.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>API</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/en/plugins/themes.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Plugins</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/help/help1.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Help</span><!--]--></a><!--]--><!--[--><a class="VPLink link VPNavBarMenuLink" href="/mind-map-docs/sponsor.html" tabindex="0" data-v-dc692963 data-v-9c663999><!--[--><span data-v-9c663999>Sponsor</span><!--]--></a><!--]--><!--[--><div class="VPFlyout VPNavBarMenuGroup" data-v-dc692963 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><!----><span data-v-b6c34ac9>More</span><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><div class="items" data-v-b98bc113><!--[--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link" href="/mind-map-docs/en/blog.html" data-v-43f1e123><!--[-->Blog<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://github.com/wanglin2/lx-doc" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Ideal Document<!--]--></a></div><!--]--><!--[--><div class="VPMenuLink" data-v-b98bc113 data-v-43f1e123><a class="VPLink link vp-external-link-icon" href="https://github.com/wanglin2/mind-map/issues" target="_blank" rel="noreferrer" data-v-43f1e123><!--[-->Issues<!--]--></a></div><!--]--><!--]--></div><!--[--><!--]--></div></div></div><!--]--><!--]--></nav><div class="VPFlyout VPNavBarTranslations translations" data-v-6aa21345 data-v-88af2de4 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="Change language" data-v-b6c34ac9><span class="text" data-v-b6c34ac9><span class="vpi-languages option-icon" data-v-b6c34ac9></span><!----><span class="vpi-chevron-down text-icon" data-v-b6c34ac9></span></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><div class="items" data-v-88af2de4><p class="title" data-v-88af2de4>English</p><!--[--><div class="VPMenuLink" data-v-88af2de4 data-v-43f1e123><a class="VPLink link" href="/mind-map-docs/api/constructor/constructor-methods.html" data-v-43f1e123><!--[-->中文<!--]--></a></div><!--]--></div><!--]--><!--]--></div></div></div><div class="VPNavBarAppearance appearance" data-v-6aa21345 data-v-6c893767><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-6c893767 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div><div class="VPSocialLinks VPNavBarSocialLinks social-links" data-v-6aa21345 data-v-0394ad82 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/wanglin2/mind-map" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div><div class="VPFlyout VPNavBarExtra extra" data-v-6aa21345 data-v-bb2aa2f0 data-v-b6c34ac9><button type="button" class="button" aria-haspopup="true" aria-expanded="false" aria-label="extra navigation" data-v-b6c34ac9><span class="vpi-more-horizontal icon" data-v-b6c34ac9></span></button><div class="menu" data-v-b6c34ac9><div class="VPMenu" data-v-b6c34ac9 data-v-b98bc113><!----><!--[--><!--[--><div class="group translations" data-v-bb2aa2f0><p class="trans-title" data-v-bb2aa2f0>English</p><!--[--><div class="VPMenuLink" data-v-bb2aa2f0 data-v-43f1e123><a class="VPLink link" href="/mind-map-docs/api/constructor/constructor-methods.html" data-v-43f1e123><!--[-->中文<!--]--></a></div><!--]--></div><div class="group" data-v-bb2aa2f0><div class="item appearance" data-v-bb2aa2f0><p class="label" data-v-bb2aa2f0>Dark mode</p><div class="appearance-action" data-v-bb2aa2f0><button class="VPSwitch VPSwitchAppearance" type="button" role="switch" title="Switch to dark theme" aria-checked="false" data-v-bb2aa2f0 data-v-5337faa4 data-v-1d5665e3><span class="check" data-v-1d5665e3><span class="icon" data-v-1d5665e3><!--[--><span class="vpi-sun sun" data-v-5337faa4></span><span class="vpi-moon moon" data-v-5337faa4></span><!--]--></span></span></button></div></div></div><div class="group" data-v-bb2aa2f0><div class="item social-links" data-v-bb2aa2f0><div class="VPSocialLinks social-links-list" data-v-bb2aa2f0 data-v-7bc22406><!--[--><a class="VPSocialLink no-icon" href="https://github.com/wanglin2/mind-map" aria-label="github" target="_blank" rel="noopener" data-v-7bc22406 data-v-eee4e7cb><span class="vpi-social-github" /></a><!--]--></div></div></div><!--]--><!--]--></div></div></div><!--[--><!--]--><button type="button" class="VPNavBarHamburger hamburger" aria-label="mobile navigation" aria-expanded="false" aria-controls="VPNavScreen" data-v-6aa21345 data-v-e5dd9c1c><span class="container" data-v-e5dd9c1c><span class="top" data-v-e5dd9c1c></span><span class="middle" data-v-e5dd9c1c></span><span class="bottom" data-v-e5dd9c1c></span></span></button></div></div></div></div><div class="divider" data-v-6aa21345><div class="divider-line" data-v-6aa21345></div></div></div><!----></header><div class="VPLocalNav has-sidebar empty" data-v-5d98c3a5 data-v-a6f0e41e><div class="container" data-v-a6f0e41e><button class="menu" aria-expanded="false" aria-controls="VPSidebarNav" data-v-a6f0e41e><span class="vpi-align-left menu-icon" data-v-a6f0e41e></span><span class="menu-text" data-v-a6f0e41e>Menu</span></button><div class="VPLocalNavOutlineDropdown" style="--vp-vh:0px;" data-v-a6f0e41e data-v-17a5e62e><button data-v-17a5e62e>Return to top</button><!----></div></div></div><aside class="VPSidebar" data-v-5d98c3a5 data-v-319d5ca6><div class="curtain" data-v-319d5ca6></div><nav class="nav" id="VPSidebarNav" aria-labelledby="sidebar-aria-label" tabindex="-1" data-v-319d5ca6><span class="visually-hidden" id="sidebar-aria-label" data-v-319d5ca6> Sidebar Navigation </span><!--[--><!--]--><!--[--><div class="no-transition group" data-v-c40bc020><section class="VPSidebarItem level-0 has-active" data-v-c40bc020 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h2 class="text" data-v-b7550ba0>API</h2><!----></div><div class="items" data-v-b7550ba0><!--[--><section class="VPSidebarItem level-1 has-active" data-v-b7550ba0 data-v-b7550ba0><div class="item" role="button" tabindex="0" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><h3 class="text" data-v-b7550ba0>Constructor</h3><!----></div><div class="items" data-v-b7550ba0><!--[--><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/constructor/constructor-options.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Options</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/constructor/constructor-props.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Props</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-2 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/constructor/constructor-methods.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Methods</p><!--]--></a><!----></div><!----></div><!--]--></div></section><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/node.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Node class</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/render.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Render clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/command.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Command clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/textEdit.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>TextEdit clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/view.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>View clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/keyCommand.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>KeyCommand clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/batchExecution.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>BatchExecution clas</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/xmind.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>XMind parse</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/markdown.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Markdown parse</p><!--]--></a><!----></div><!----></div><div class="VPSidebarItem level-1 is-link" data-v-b7550ba0 data-v-b7550ba0><div class="item" data-v-b7550ba0><div class="indicator" data-v-b7550ba0></div><a class="VPLink link link" href="/mind-map-docs/en/api/utils.html" data-v-b7550ba0><!--[--><p class="text" data-v-b7550ba0>Utility methods</p><!--]--></a><!----></div><!----></div><!--]--></div></section></div><!--]--><!--[--><!--]--></nav></aside><div class="VPContent has-sidebar" id="VPContent" data-v-5d98c3a5 data-v-1428d186><div class="VPDoc has-sidebar has-aside" data-v-1428d186 data-v-39a288b8><!--[--><!--]--><div class="container" data-v-39a288b8><div class="aside" data-v-39a288b8><div class="aside-curtain" data-v-39a288b8></div><div class="aside-container" data-v-39a288b8><div class="aside-content" data-v-39a288b8><div class="VPDocAside" data-v-39a288b8 data-v-3f215769><!--[--><!--]--><!--[--><!--]--><nav aria-labelledby="doc-outline-aria-label" class="VPDocAsideOutline" data-v-3f215769 data-v-a5bbad30><div class="content" data-v-a5bbad30><div class="outline-marker" data-v-a5bbad30></div><div aria-level="2" class="outline-title" id="doc-outline-aria-label" role="heading" data-v-a5bbad30>Outline</div><ul class="VPDocOutlineItem root" data-v-a5bbad30 data-v-b933a997><!--[--><!--]--></ul></div></nav><!--[--><!--]--><div class="spacer" data-v-3f215769></div><!--[--><!--]--><!----><!--[--><!--]--><!--[--><!--]--></div></div></div></div><div class="content" data-v-39a288b8><div class="content-container" data-v-39a288b8><!--[--><!--]--><main class="main" data-v-39a288b8><div style="position:relative;" class="vp-doc _mind-map-docs_en_api_constructor_constructor-methods" data-v-39a288b8><div><h1 id="constructor" tabindex="-1">Constructor <a class="header-anchor" href="#constructor" aria-label="Permalink to &quot;Constructor&quot;">​</a></h1><h2 id="static-methods" tabindex="-1">Static methods <a class="header-anchor" href="#static-methods" aria-label="Permalink to &quot;Static methods&quot;">​</a></h2><h3 id="definetheme-name-config" tabindex="-1">defineTheme(name, config) <a class="header-anchor" href="#definetheme-name-config" aria-label="Permalink to &quot;defineTheme(name, config)&quot;">​</a></h3><blockquote><p>v0.2.23+</p></blockquote><p>Define new theme.</p><p><code>name</code>：New theme name</p><p><code>config</code>：New theme config</p><p><code>Simple-mind-map </code> Built-in many themes. In addition, you can register new theme. It is recommended to register before instantiation, so that you can directly use the newly registered theme during instantiation. Use example:</p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">import</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;"> MindMap </span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">from</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;"> &#39;simple-mind-map&#39;</span></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 注册新主题</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">MindMap.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">defineTheme</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Theme name&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">, {})</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 1.实例化时使用新注册的主题</span></span>
<span class="line"><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;">const</span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;"> mindMap</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> =</span><span style="--shiki-light:#D73A49;--shiki-dark:#F97583;"> new</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;"> MindMap</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    theme: </span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Theme name&#39;</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span>
<span class="line"></span>
<span class="line"><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 2.动态切换新主题</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">mindMap.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">setTheme</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">(</span><span style="--shiki-light:#032F62;--shiki-dark:#9ECBFF;">&#39;Theme name&#39;</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">)</span></span></code></pre></div><p>For all configurations of theme, please refer to <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/theme/default.js" target="_blank" rel="noreferrer">Default Topic</a>. The <code>defineTheme</code>method will merge the configuration you passed in with the default configuration. Most of the themes do not need custom many parts. For a typical customized theme configuration, please refer to <a href="https://github.com/wanglin2/simple-mind-map-plugin-themes/blob/main/src/light/blueSky.js" target="_blank" rel="noreferrer">blueSky</a>.</p><h3 id="removetheme-name" tabindex="-1">removeTheme(name) <a class="header-anchor" href="#removetheme-name" aria-label="Permalink to &quot;removeTheme(name)&quot;">​</a></h3><blockquote><p>v0.12.0+</p></blockquote><ul><li><code>name</code>：Theme name</li></ul><p>Remove the registered theme.</p><h3 id="useplugin-plugin-opt" tabindex="-1">usePlugin(plugin, opt = {}) <a class="header-anchor" href="#useplugin-plugin-opt" aria-label="Permalink to &quot;usePlugin(plugin, opt = {})&quot;">​</a></h3><blockquote><p>v0.3.0+</p></blockquote><ul><li><code>opt</code>：v0.4.0+，Plugin options. If a plugin supports custom options, it can be passed in through this parameter.</li></ul><p>If you need to use some non-core functions, such as mini map, watermark, etc, you can register plugin through this method. Can be called in chain.</p><p>Note: The plugin needs to be registered before instantiating <code>MindMap</code>.</p><h3 id="hasplugin-plugin" tabindex="-1">hasPlugin(plugin) <a class="header-anchor" href="#hasplugin-plugin" aria-label="Permalink to &quot;hasPlugin(plugin)&quot;">​</a></h3><blockquote><p>v0.4.0+</p></blockquote><p>Get whether a plugin is registered, The index of the plugin in the registered plugin list is returned, If it is <code>-1</code>, it means that the plugin is not registered.</p><h2 id="instance-methods" tabindex="-1">Instance methods <a class="header-anchor" href="#instance-methods" aria-label="Permalink to &quot;Instance methods&quot;">​</a></h2><h3 id="getelrectinfo" tabindex="-1">getElRectInfo() <a class="header-anchor" href="#getelrectinfo" aria-label="Permalink to &quot;getElRectInfo()&quot;">​</a></h3><p>Update the position and size information of container elements. Be sure to call this method to update information when the position of container elements on the page changes. If the size of container elements has also changed, please call the &#39;resize&#39; method.</p><h3 id="updatedata-data" tabindex="-1">updateData(data) <a class="header-anchor" href="#updatedata-data" aria-label="Permalink to &quot;updateData(data)&quot;">​</a></h3><blockquote><p>v0.9.9+</p></blockquote><p>Update canvas data. If the new data is formed by adding, deleting, modifying, and querying based on the current canvas node data, this method can be used to update the canvas data. The performance will be better, and not all nodes will be recreated, but rather reused as much as possible.</p><h3 id="cleardraw" tabindex="-1">clearDraw() <a class="header-anchor" href="#cleardraw" aria-label="Permalink to &quot;clearDraw()&quot;">​</a></h3><blockquote><p>v0.8.0+</p></blockquote><p>Clear <code>lineDraw</code>、<code>associativeLineDraw</code>、<code>nodeDraw</code>、<code>otherDraw</code> containers.</p><h3 id="destroy" tabindex="-1">destroy() <a class="header-anchor" href="#destroy" aria-label="Permalink to &quot;destroy()&quot;">​</a></h3><blockquote><p>v0.6.0+</p></blockquote><p>Destroy mind maps. It will remove registered plugins, remove listening events, and delete all nodes on the canvas.</p><h3 id="getsvgdata-paddingx-0-paddingy-0-ignorewatermark-false-addcontenttoheader-addcontenttofooter-node" tabindex="-1">getSvgData({ paddingX = 0, paddingY = 0, ignoreWatermark = false, addContentToHeader, addContentToFooter, node }) <a class="header-anchor" href="#getsvgdata-paddingx-0-paddingy-0-ignorewatermark-false-addcontenttoheader-addcontenttofooter-node" aria-label="Permalink to &quot;getSvgData({ paddingX = 0, paddingY = 0, ignoreWatermark = false, addContentToHeader, addContentToFooter, node })&quot;">​</a></h3><blockquote><p>v0.3.0+</p></blockquote><p><code>paddingX</code>: Padding x</p><p><code>paddingY</code>: Padding y</p><p><code>ignoreWatermark</code>：v0.8.0+, Do not draw watermarks. If you do not need to draw watermarks, you can pass &#39;true&#39; because drawing watermarks is very slow</p><p><code>addContentToHeader</code>：v0.9.9+, Function, You can return the custom content to be added to the header, as detailed in the configuration in 【Instantiation options】</p><p><code>addContentToFooter</code>：v0.9.9+, Function, You can return the custom content to be added to the tail, as detailed in the configuration in 【Instantiation options】</p><p><code>node</code>: v0.9.11+, Node instance, if passed, only export the content of that node</p><p>Get the <code>svg</code> data and return an object. The detailed structure is as follows:</p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">{</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  svg, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Element, the overall svg element of the mind map graphics, including: svg (canvas container), g (actual mind map group)</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  svgHTML, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// String, svg string, i.e. html string, can be directly rendered to the small map container you prepared</span></span>
<span class="line"><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">  rect</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">: </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Object, position, size, etc. of mind map graphics before zoom</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  origWidth, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Number, canvas width</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  origHeight, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Number, canvas height</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  scaleX, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Number, horizontal zoom value of mind map graphics</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  scaleY, </span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// Number, vertical zoom value of mind map graphics</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">  clipData</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// v0.9.11+，If node is passed, that is, the content of the specified node is exported, then this field will be returned, Represents the position coordinate data of the node region cropped from the complete image</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">}</span></span></code></pre></div><h3 id="render-callback" tabindex="-1">render(callback) <a class="header-anchor" href="#render-callback" aria-label="Permalink to &quot;render(callback)&quot;">​</a></h3><ul><li><code>callback</code>: <code>v0.3.2+</code>, <code>Function</code>, Called when the re-rendering is complete</li></ul><p>Triggers a full rendering, which will reuse nodes for better performance. If only the node positions have changed, this method can be called to <code>reRender</code>.</p><h3 id="rerender-callback" tabindex="-1">reRender(callback) <a class="header-anchor" href="#rerender-callback" aria-label="Permalink to &quot;reRender(callback)&quot;">​</a></h3><ul><li><code>callback</code>: <code>v0.3.2+</code>, <code>Function</code>, Called when the re-rendering is complete</li></ul><p>Performs a full re-render, clearing the canvas and creating new nodes. This has poor performance and should be used sparingly.</p><h3 id="resize" tabindex="-1">resize() <a class="header-anchor" href="#resize" aria-label="Permalink to &quot;resize()&quot;">​</a></h3><p>After the container size has changed, this method should be called to adjust.</p><h3 id="setmode-mode" tabindex="-1">setMode(mode) <a class="header-anchor" href="#setmode-mode" aria-label="Permalink to &quot;setMode(mode)&quot;">​</a></h3><blockquote><p>v0.1.7+</p></blockquote><p>Switches between readonly and edit mode.</p><p><code>mode</code>：readonly、edit</p><h3 id="on-event-fn" tabindex="-1">on(event, fn) <a class="header-anchor" href="#on-event-fn" aria-label="Permalink to &quot;on(event, fn)&quot;">​</a></h3><p>Listen to an event. Event list:</p><table tabindex="0"><thead><tr><th>Event Name</th><th>Description</th><th>Callback Parameters</th></tr></thead><tbody><tr><td>data_change</td><td>Tree rendering data change, listen to this method to get the latest data</td><td>data (current tree rendering data)</td></tr><tr><td>view_data_change（v0.1.1+）</td><td>View change data, such as when dragging or zooming</td><td>data (current view state data)</td></tr><tr><td>back_forward</td><td>Forward or backward</td><td>activeHistoryIndex (current index in the history data array), length (current length of the history data array)</td></tr><tr><td>draw_click</td><td>Canvas click event</td><td>e (event object)</td></tr><tr><td>svg_mousedown</td><td>svg canvas mouse down event</td><td>e (event object)</td></tr><tr><td>mousedown</td><td>el element mouse down event</td><td>e (event object), this (Event event class instance)</td></tr><tr><td>mousemove</td><td>el element mouse move event</td><td>e (event object), this (Event event class instance)</td></tr><tr><td>drag</td><td>If it is a drag event while holding down the left button</td><td>e (event object), this (Event event class instance)</td></tr><tr><td>mouseup</td><td>el element mouse up event</td><td>e (event object), this (Event event class instance)</td></tr><tr><td>mousewheel</td><td>Mouse scroll event</td><td>e (event object), dir (up or down scroll. v0.9.2+ changed to dirs, array type, which supports saving multiple directions simultaneously), this (Event event class instance) 、isTouchPad（v0.6.1+, Is it an event triggered by the touchpad）</td></tr><tr><td>contextmenu</td><td>svg canvas right mouse button menu event</td><td>e (event object)</td></tr><tr><td>node_click</td><td>Node click event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_mousedown</td><td>Node mouse down event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_mouseup</td><td>node mouseup event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_mouseup</td><td>Node mouseup event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_dblclick</td><td>Node double-click event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_contextmenu</td><td>Node right-click menu event</td><td>e (event object), this (node instance)</td></tr><tr><td>node_mouseenter（v0.4.1+）</td><td>Node mouseenter event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_mouseleave（v0.4.1+）</td><td>Node mouseleave event</td><td>this (node instance), e (event object)</td></tr><tr><td>before_node_active</td><td>Event before node activation</td><td>this (node instance), activeNodeList (current list of active nodes)</td></tr><tr><td>node_active</td><td>Node activation event</td><td>this (node instance), activeNodeList (current list of active nodes)</td></tr><tr><td>expand_btn_click</td><td>Node expand or collapse event</td><td>this (node instance)</td></tr><tr><td>before_show_text_edit</td><td>Event before node text edit box opens</td><td></td></tr><tr><td>hide_text_edit</td><td>Node text edit box close event【The end of text editing for the associated line will also trigger this event, and there are no callback parameters at this time, so defensive programming is necessary】</td><td>textEditNode (text edit box DOM node), activeNodeList (current list of active nodes) 、node（v0.10.2+, Node instance for current text editing）</td></tr><tr><td>scale</td><td>Canvas zoom event</td><td>scale (zoom ratio)</td></tr><tr><td>translate（v0.9.10+）</td><td>Canvas movement event</td><td>x（translate x）、y（translate y）</td></tr><tr><td>node_img_dblclick（v0.2.15+）</td><td>Node image double-click event</td><td>this (node instance), e (event object)</td></tr><tr><td>node_img_mouseenter（v0.6.5+）</td><td>Node image mouseenter event</td><td>this（node instance）、imgNode（img node）、e（event object）</td></tr><tr><td>node_img_mouseleave（v0.6.5+）</td><td>Node image mouseleave event</td><td>this（node instance）、imgNode（img node）、e（event object）</td></tr><tr><td>node_img_mousemove（v0.6.5+）</td><td>Node image mousemove event</td><td>this（node instance）、imgNode（img node）、e（event object）</td></tr><tr><td>node_tree_render_end（v0.2.16+）</td><td>Node tree render end event</td><td></td></tr><tr><td>node_tree_render_start（v0.10.0+）</td><td>Node tree start rendering event</td><td></td></tr><tr><td>rich_text_selection_change（v0.4.0+）</td><td>Available when the <code>RichText</code> plugin is registered. Triggered when the text selection area changes when the node is edited</td><td>hasRange（Whether there is a selection）、rectInfo（Size and location information of the selected area）、formatInfo（Text formatting information of the selected area）</td></tr><tr><td>transforming-dom-to-images（v0.4.0+）</td><td>Available when the <code>RichText</code> plugin is registered. When there is a <code>DOM</code> node in <code>svg</code>, the <code>DOM</code> node will be converted to an image when exporting to an image. This event will be triggered during the conversion process. You can use this event to prompt the user about the node to which you are currently converting</td><td>index（Index of the node currently converted to）、len（Total number of nodes to be converted）</td></tr><tr><td>node_dragging（v0.4.5+）</td><td>Triggered when a node is dragged</td><td>node(The currently dragged node)</td></tr><tr><td>node_dragend（v0.4.5+）</td><td>Triggered when the node is dragged and ends</td><td>{ overlapNodeUid, prevNodeUid, nextNodeUid }（v0.6.12+，The node uid to which the node is moved this time, for example, if it is moved to node A, then the overlayNodeUid is the uid of node A. If it is moved to the front of node B, then the nextNodeUid is the uid of node B. You can obtain the node instance through the mindMap. extender.findNodeByUid(uid) method）</td></tr><tr><td>associative_line_click（v0.4.5+）</td><td>Triggered when an associated line is clicked</td><td>path(Connector node)、clickPath(Invisible click line node)、node(Start node)、toNode(Target node)</td></tr><tr><td>svg_mouseenter（v0.5.1+）</td><td>Triggered when the mouse moves into the SVG canvas</td><td>e（event object）</td></tr><tr><td>svg_mouseleave（v0.5.1+）</td><td>Triggered when the mouse moves out of the SVG canvas</td><td>e（event object）</td></tr><tr><td>node_icon_click（v0.6.10+）</td><td>Triggered when clicking on an icon within a node</td><td>this（node instance）、item（Click on the icon name）、e（event object）、node(Icon node, v0.9.9+)</td></tr><tr><td>node_icon_mouseenter（v0.9.9+）</td><td>Triggered when the mouse moves into an icon within a node</td><td>this（node instance）、item（Click on the icon name）、e（event object）、node(Icon node)</td></tr><tr><td>node_icon_mouseleave（v0.9.9+）</td><td>Triggered when the mouse moves out of the icon within the node</td><td>this（node instance）、item（Click on the icon name）、e（event object）、node(Icon node)</td></tr><tr><td>view_theme_change（v0.6.12+）</td><td>Triggered after calling the setTheme method to set the theme</td><td>theme（theme name）</td></tr><tr><td>set_data（v0.7.3+）</td><td>Triggered when the setData method is called to dynamically set mind map data</td><td>data（New Mind Map Data）</td></tr><tr><td>resize（v0.8.0+）</td><td>Triggered after the container size changes, actually when the &#39;resize&#39; method of the mind map instance is called</td><td></td></tr><tr><td>beforeDestroy（v0.9.0+）</td><td>Triggered before destroying the mind map, i.e. triggered by calling the destroy method</td><td></td></tr><tr><td>body_mousedown（v0.9.2+）</td><td>Mousedown event of document.body</td><td>e（event object）</td></tr><tr><td>body_click</td><td>Click event of document.body</td><td>e（event object）</td></tr><tr><td>data_change_detail（v0.9.3+）</td><td>The detailed changes in rendering tree data will return an array, with each item representing an update point and each item being an object, There is a &#39;type&#39; attribute that represents the type of detail, Including &#39;create&#39; (create node), &#39;update&#39; (update node), &#39;delete&#39; (delete node), There is a &#39;data&#39; attribute that represents the current updated node data. If it is of the &#39;update&#39; type, there will also be an &#39;oldData&#39; attribute that saves the data of the node before the update</td><td>arr（Detail data）</td></tr><tr><td>layout_change（v0.9.4+）</td><td>Triggered when modifying the structure, i.e. when the mindMap.setLayout() method is called</td><td>layout（New layout）</td></tr><tr><td>node_cooperate_avatar_click（v0.9.9+）</td><td>Triggered when the mouse clicks on a person&#39;s avatar during collaborative editing</td><td>userInfo(User info)、 this(Current node instance)、 node(Avatar node)、 e(Event Object)</td></tr><tr><td>node_cooperate_avatar_mouseenter（v0.9.9+）</td><td>Triggered when the mouse moves over a person&#39;s avatar during collaborative editing</td><td>userInfo(User info)、 this(Current node instance)、 node(Avatar node)、 e(Event Object)</td></tr><tr><td>node_cooperate_avatar_mouseleave（v0.9.9+）</td><td>Triggered when removing personnel avatars with the mouse during collaborative editing</td><td>userInfo(User info)、 this(Current node instance)、 node(Avatar node)、 e(Event Object)</td></tr><tr><td>exit_demonstrate（v0.9.11+）</td><td>Triggered when exiting demonstration mode</td><td></td></tr><tr><td>demonstrate_jump（v0.9.11+）</td><td>Trigger when switching steps in demonstration mode</td><td>currentStepIndex（The index of the steps currently played, counting from 0）、stepLength（Total number of playback steps）</td></tr><tr><td>node_tag_click（v0.9.12+）</td><td>Click events on node labels</td><td>this(Current node instance)、item（Content of clicked tags）、index（v0.10.3+，The index of this tag in the tag list）、tagNode（v0.10.3+，Tag node, G instance of @svgdotjs/svg.js library, Can be used to obtain label position and size information）</td></tr><tr><td>node_layout_end（v0.10.1+）</td><td>Event where the content layout of a single node is completed</td><td>this(Current node instance)</td></tr><tr><td>node_attachmentClick（v0.9.10+）</td><td>Click event for node attachment icon</td><td>this(Current node instance)、e（Event Object）、node（Icon node）</td></tr><tr><td>node_attachmentContextmenu（v0.9.10+）</td><td>Right click event on node attachment icon</td><td>this(Current node instance)、e（Event Object）、node（Icon node）</td></tr><tr><td>before_update_config（v0.10.4+）</td><td>Triggered before updating the configuration, that is, when the &#39;mindMap.updateConfig&#39; method is called to update the configuration</td><td>opt（The configuration object before updating refers to an object, not a copy, so when the after_uupdate_comfig event is triggered, the object will also change synchronously. Therefore, it is necessary to cache a certain configuration field that you need）</td></tr><tr><td>after_update_config（v0.10.4+）</td><td>Triggered after updating configuration</td><td>opt（Updated configuration object）、lastOpt（v0.12.1+，The previous configuration object can be used to compare with opt whether a certain configuration has changed, but it should be noted that only option fields with simple values can be compared）</td></tr><tr><td>node_note_click（v0.10.6+）</td><td>Click event of node note icon</td><td>this(Current node instance)、e（Event Object）、node（Icon node）</td></tr><tr><td>search_match_node_list_change（v0.11.0+）</td><td>Search plugin: Triggered when the list of matched nodes changes during search</td><td>list（The matching node list, please note that the data in the array items may be node instances or node data, and it is necessary to make a good judgment）</td></tr><tr><td>node_text_edit_change（v0.11.1+）</td><td>Triggered when the input text changes in node text editing</td><td>{ node, text, richText } The meanings of the fields are: the node instance currently being edited, the latest text, and whether it is rich text</td></tr></tbody></table><h3 id="emit-event-args" tabindex="-1">emit(event, ...args) <a class="header-anchor" href="#emit-event-args" aria-label="Permalink to &quot;emit(event, ...args)&quot;">​</a></h3><p>Trigger an event, which can be one of the events listed above or a custom event.</p><h3 id="off-event-fn" tabindex="-1">off(event, fn) <a class="header-anchor" href="#off-event-fn" aria-label="Permalink to &quot;off(event, fn)&quot;">​</a></h3><p>Unbind an event.</p><h3 id="settheme-theme-notrender-false" tabindex="-1">setTheme(theme, notRender = false) <a class="header-anchor" href="#settheme-theme-notrender-false" aria-label="Permalink to &quot;setTheme(theme, notRender = false)&quot;">​</a></h3><ul><li><code>notRender</code>: v0.8.0+, Is not call the render method to update the canvas.</li></ul><p>Switches the theme. Available themes can be found in the options table above.</p><h3 id="gettheme" tabindex="-1">getTheme() <a class="header-anchor" href="#gettheme" aria-label="Permalink to &quot;getTheme()&quot;">​</a></h3><p>Gets the current theme.</p><h3 id="setthemeconfig-config-notrender-false" tabindex="-1">setThemeConfig(config, notRender = false) <a class="header-anchor" href="#setthemeconfig-config-notrender-false" aria-label="Permalink to &quot;setThemeConfig(config, notRender = false)&quot;">​</a></h3><ul><li><code>notRender</code>: v0.8.0+, Is not call the render method to update the canvas.</li></ul><p>Sets the theme configuration. <code>config</code> is the same as the <code>themeConfig</code> option in the options table above.</p><h3 id="getcustomthemeconfig" tabindex="-1">getCustomThemeConfig() <a class="header-anchor" href="#getcustomthemeconfig" aria-label="Permalink to &quot;getCustomThemeConfig()&quot;">​</a></h3><p>Gets the custom theme configuration.</p><h3 id="getthemeconfig-prop" tabindex="-1">getThemeConfig(prop) <a class="header-anchor" href="#getthemeconfig-prop" aria-label="Permalink to &quot;getThemeConfig(prop)&quot;">​</a></h3><p>Gets the value of a specific theme configuration property.</p><h3 id="getconfig-prop" tabindex="-1">getConfig(<em>prop</em>) <a class="header-anchor" href="#getconfig-prop" aria-label="Permalink to &quot;getConfig(*prop*)&quot;">​</a></h3><blockquote><p>0.2.24+</p></blockquote><p><code>prop</code>：Get the value of the specified configuration, and return the entire configuration if not passed</p><p>Get config, That is, <code>opt</code> of <code>new MindMap (opt)</code></p><h3 id="updateconfig-opt" tabindex="-1">updateConfig(<em>opt</em> = {}) <a class="header-anchor" href="#updateconfig-opt" aria-label="Permalink to &quot;updateConfig(*opt* = {})&quot;">​</a></h3><blockquote><p>0.2.24+</p></blockquote><p><code>opt</code>：Configuration to update</p><p>Update config，That is update <code>opt</code> of <code>new MindMap(opt)</code>，You can only update some data, such as:</p><div class="language-js vp-adaptive-theme"><button title="Copy Code" class="copy"></button><span class="lang">js</span><pre class="shiki shiki-themes github-light github-dark vp-code" tabindex="0"><code><span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">mindMap.</span><span style="--shiki-light:#6F42C1;--shiki-dark:#B392F0;">updateConfig</span><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">({</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">    enableFreeDrag: </span><span style="--shiki-light:#005CC5;--shiki-dark:#79B8FF;">true</span><span style="--shiki-light:#6A737D;--shiki-dark:#6A737D;">// 开启节点自由拖拽</span></span>
<span class="line"><span style="--shiki-light:#24292E;--shiki-dark:#E1E4E8;">})</span></span></code></pre></div><p>This method only updates the configuration and has no other side effects, such as triggering canvas re-rendering</p><h3 id="getlayout" tabindex="-1">getLayout() <a class="header-anchor" href="#getlayout" aria-label="Permalink to &quot;getLayout()&quot;">​</a></h3><p>Gets the current layout structure.</p><h3 id="setlayout-layout-notrender-false" tabindex="-1">setLayout(layout, notRender = false) <a class="header-anchor" href="#setlayout-layout-notrender-false" aria-label="Permalink to &quot;setLayout(layout, notRender = false)&quot;">​</a></h3><ul><li><code>notRender</code>: v0.8.0+, Is not call the render method to update the canvas.</li></ul><p>Sets the layout structure. Available values can be found in the <code>layout</code> field in the options table above.</p><h3 id="execcommand-name-args" tabindex="-1">execCommand(name, ...args) <a class="header-anchor" href="#execcommand-name-args" aria-label="Permalink to &quot;execCommand(name, ...args)&quot;">​</a></h3><p>Executes a command, which will add a record to the history stack for undo or redo. All commands are as follows:</p><table tabindex="0"><thead><tr><th>Command name</th><th>Description</th><th>Parameters</th></tr></thead><tbody><tr><td>SELECT_ALL</td><td>Select all</td><td></td></tr><tr><td>BACK</td><td>Go back a specified number of steps</td><td>step (the number of steps to go back, default is 1)</td></tr><tr><td>FORWARD</td><td>Go forward a specified number of steps</td><td>step (the number of steps to go forward, default is 1)</td></tr><tr><td>INSERT_NODE</td><td>Insert a sibling node, the active node or appoint node will be the operation node. If there are multiple active nodes, only the first one will be effective（v0.7.2+Supports simultaneous insertion of sibling nodes into multiple active nodes）</td><td>openEdit（v0.4.6+, Whether to activate the newly inserted node and enter editing mode, default is <code>true</code>） 、 appointNodes（v0.4.7+, Optional, appoint node, Specifying multiple nodes can pass an array）、 appointData（Optional, Specify the data for the newly created node, Such as {text: &#39;xxx&#39;, ...}, Detailed structure can be referred to <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js" target="_blank" rel="noreferrer">exampleData.js</a> ）、 appointChildren（v0.6.14+, Optional, Specify the child nodes of the newly created node, array type）</td></tr><tr><td>INSERT_CHILD_NODE</td><td>Insert a child node, the active node or appoint node will be the operation node</td><td>openEdit（v0.4.6+, Whether to activate the newly inserted node and enter editing mode, default is <code>true</code>）、 appointNodes（v0.4.7+, Optional, appoint node, Specifying multiple nodes can pass an array）、 appointData（Optional, Specify the data for the newly created node, Such as {text: &#39;xxx&#39;, ...}, Detailed structure can be referred to <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js" target="_blank" rel="noreferrer">exampleData.js</a> ）、 appointChildren（v0.6.14+, Optional, Specify the child nodes of the newly created node, array type）</td></tr><tr><td>UP_NODE</td><td>Move node up, the active node will be the operation node. If there are multiple active nodes, only the first one will be effective. Using this command on the root node or the first node in the list will be invalid</td><td></td></tr><tr><td>DOWN_NODE</td><td>Move node down, the active node will be the operation node. If there are multiple active nodes, only the first one will be effective. Using this command on the root node or the last node in the list will be invalid</td><td></td></tr><tr><td>REMOVE_NODE</td><td>Remove node, the active node or appoint node will be the operation node</td><td>appointNodes（v0.4.7+, Optional, appoint node, Specifying multiple nodes can pass an array）</td></tr><tr><td>PASTE_NODE</td><td>Paste node to a node, the active node will be the operation node</td><td>data (the node data to paste, usually obtained through the renderer.copyNode() and renderer.cutNode() methods)</td></tr><tr><td>SET_NODE_STYLE</td><td>Modify node single style</td><td>node (the node to set the style of), prop (style property), value (style property value), isActive (v0.7.0+has been abandoned, boolean, whether the style being set is for the active state)</td></tr><tr><td>SET_NODE_STYLES（v0.6.12+）</td><td>Modify multiple styles of nodes</td><td>node（the node to set the style of）、style（Style object，key is style prop，value is style value）、isActive（v0.7.0+has been abandoned, boolean, whether the style being set is for the active state）</td></tr><tr><td>SET_NODE_ACTIVE</td><td>Set whether the node is active(This command only updates the activation fields and node activation styles in the node data. If you want to achieve the same effect as clicking on a node with the mouse, please use the &#39;active()&#39; method of the node instance directly.)</td><td>node (the node to set), active (boolean, whether to activate)</td></tr><tr><td>CLEAR_ACTIVE_NODE</td><td>Clear the active state of the currently active node(s), the active node will be the operation node</td><td></td></tr><tr><td>SET_NODE_EXPAND</td><td>Set whether the node is expanded</td><td>node (the node to set), expand (boolean, whether to expand)</td></tr><tr><td>EXPAND_ALL</td><td>Expand all nodes</td><td>uid（v0.11.1+，Expand only all descendant nodes under the specified UID node）</td></tr><tr><td>UNEXPAND_ALL</td><td>Collapse all nodes</td><td>isSetRootNodeCenter（v0.9.11+，default is true，Will the root node be moved to the center after retracting all nodes）、uid（v0.11.1+，Only retract all descendant nodes of the specified UID node）</td></tr><tr><td>UNEXPAND_TO_LEVEL (v0.2.8+)</td><td>Expand to a specified level</td><td>level (the level to expand to, 1, 2, 3...)</td></tr><tr><td>SET_NODE_DATA</td><td>Update node data, that is, update the data in the data object of the node data object. Note that this command will not trigger view updates</td><td>node (the node to set), data (object, the data to update, e.g. <code>{expand: true}</code>)</td></tr><tr><td>SET_NODE_TEXT</td><td>Set node text</td><td>node (the node to set), text (the new text for the node), richText（v0.4.0+, If you want to set a rich text character, you need to set it to <code>true</code>）、resetRichText（v0.6.10+Do you want to reset rich text? The default is false. If true is passed, the style of the rich text node will be reset）</td></tr><tr><td>SET_NODE_IMAGE</td><td>Set Node Image</td><td>node (node to set), imgData (object, image information, structured as: <code>{url, title, width, height}</code>, the width and height of the image must be passed)</td></tr><tr><td>SET_NODE_ICON</td><td>Set Node Icon</td><td>node (node to set), icons (array, predefined image names array, available icons can be obtained in the nodeIconList list in the <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/svg/icons.js" target="_blank" rel="noreferrer">icons.js</a> file, icon name is type_name, such as [&#39;priority_1&#39;])</td></tr><tr><td>SET_NODE_HYPERLINK</td><td>Set Node Hyperlink</td><td>node (node to set), link (hyperlink address), title (hyperlink name, optional)</td></tr><tr><td>SET_NODE_NOTE</td><td>Set Node Note</td><td>node (node to set), note (note text)</td></tr><tr><td>SET_NODE_ATTACHMENT（v0.9.10+）</td><td>Set node attachment</td><td>node（node to set）、url（attachment url）、name（attachment name, optional）</td></tr><tr><td>SET_NODE_TAG</td><td>Set Node Tag</td><td>node (node to set), tag (Previous versions before v0.10.3 only support string arrays, i.e. [&#39;tag&#39;], while v0.10.3+versions support object arrays, i.e. [{text: &#39;tag&#39;, style: {} }])</td></tr><tr><td>INSERT_AFTER (v0.1.5+)</td><td>Move Node to After Another Node</td><td>node (node to move, (v0.7.2+supports passing node arrays to move multiple nodes simultaneously)), exist (target node)</td></tr><tr><td>INSERT_BEFORE (v0.1.5+)</td><td>Move Node to Before Another Node</td><td>node (node to move, (v0.7.2+supports passing node arrays to move multiple nodes simultaneously)), exist (target node)</td></tr><tr><td>MOVE_NODE_TO (v0.1.5+)</td><td>Move a node as a child of another node</td><td>node (the node to move, (v0.7.2+supports passing node arrays to move multiple nodes simultaneously)), toNode (the target node)</td></tr><tr><td>ADD_GENERALIZATION (v0.2.0+)</td><td>Add a node summary</td><td>data (the data for the summary, in object format, all numerical fields of the node are supported, default is <code>{text: &#39;summary&#39;}</code>)、openEdit（v0.9.11+，Default is true，Whether to enter text editing status by default）</td></tr><tr><td>REMOVE_GENERALIZATION (v0.2.0+)</td><td>Remove a node summary</td><td></td></tr><tr><td>SET_NODE_CUSTOM_POSITION (v0.2.0+)</td><td>Set a custom position for a node</td><td>node (the node to set), left (custom x coordinate, default is undefined), top (custom y coordinate, default is undefined)</td></tr><tr><td>RESET_LAYOUT (v0.2.0+)</td><td>Arrange layout with one click</td><td></td></tr><tr><td>SET_NODE_SHAPE (v0.2.4+)</td><td>Set the shape of a node</td><td>node (the node to set), shape (the shape, all shapes: <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/src/core/render/node/Shape.js" target="_blank" rel="noreferrer">Shape.js</a>)</td></tr><tr><td>GO_TARGET_NODE（v0.6.7+）</td><td>Navigate to a node, and if the node is collapsed, it will automatically expand to that node</td><td>node（Node instance or node uid to locate）、callback（v0.6.9+, Callback function after positioning completion, v0.9.8+receives a parameter representing the target node instance）</td></tr><tr><td>INSERT_MULTI_NODE（v0.7.2+）</td><td>Insert multiple sibling nodes into the specified node at the same time, with the operating node being the currently active node or the specified node</td><td>appointNodes（Optional, specify nodes, specify multiple nodes to pass an array）, nodeList（Data list of newly inserted nodes, array type）</td></tr><tr><td>INSERT_MULTI_CHILD_NODE（v0.7.2+）</td><td>Insert multiple child nodes into the specified node simultaneously, with the operation node being the currently active node or the specified node</td><td>appointNodes（Optional, specify nodes, specify multiple nodes to pass an array）, childList（Data list of newly inserted nodes, array type）</td></tr><tr><td>INSERT_FORMULA（v0.7.2+）</td><td>Insert mathematical formulas into nodes, operate on the currently active node or specified node</td><td>formula（Mathematical formula to insert, LaTeX syntax）, appointNodes（Optional, specify the node to insert the formula into. Multiple nodes can be passed as arrays, otherwise it defaults to the currently active node）</td></tr><tr><td>INSERT_PARENT_NODE（v0.8.0+）</td><td>Insert a parent node into the specified node, with the operation node being the currently active node or the specified node</td><td>openEdit（Activate the newly inserted node and enter editing mode, default to &#39;true&#39;`）、 appointNodes（Optional, specify the node to insert into the parent node, and specify that multiple nodes can pass an array）、 appointData（Optional, specify the data for the newly created node, such as {text: &#39;xxx&#39;, ...}, Detailed structure can be referenced <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exampleData.js" target="_blank" rel="noreferrer">exampleData.js</a>）</td></tr><tr><td>REMOVE_CURRENT_NODE（v0.8.0+）</td><td>Delete only the current node, operate on the currently active node or specified node</td><td>appointNodes（Optional, specify the nodes to be deleted, and multiple nodes can be passed as an array）</td></tr><tr><td>MOVE_UP_ONE_LEVEL（v0.9.6+）</td><td>Move the specified node up one level</td><td>node（Optional, specify the node to move up the hierarchy, if not passed, it will be the first node in the current active node）</td></tr><tr><td>REMOVE_CUSTOM_STYLES（v0.9.7+）</td><td>One click removal of custom styles for a node</td><td>node（Optional, specify the node to clear the custom style, otherwise it will be the first one in the current active node）</td></tr><tr><td>REMOVE_ALL_NODE_CUSTOM_STYLES（v0.9.7+）</td><td>One click removal of multiple nodes or custom styles for all nodes</td><td>appointNodes（Optional, node instance array, specifying multiple nodes to remove custom styles from. If not passed, the custom styles of all nodes on the current canvas will be removed）</td></tr></tbody></table><h3 id="setdata-data" tabindex="-1">setData(data) <a class="header-anchor" href="#setdata-data" aria-label="Permalink to &quot;setData(data)&quot;">​</a></h3><p>Dynamic setting of mind map data, pure node data</p><p><code>data</code>: mind map structure data. V0.9.9+ supports passing empty objects or null, and the canvas will display blank space.</p><h3 id="setfulldata-data" tabindex="-1">setFullData(<em>data</em>) <a class="header-anchor" href="#setfulldata-data" aria-label="Permalink to &quot;setFullData(_data_)&quot;">​</a></h3><blockquote><p>v0.2.7+</p></blockquote><p>Dynamic setting of mind map data, including node data, layout, theme, view</p><p><code>data</code>: complete data, structure can refer to <a href="https://github.com/wanglin2/mind-map/blob/main/simple-mind-map/example/exportFullData.json" target="_blank" rel="noreferrer">exportFullData</a></p><h3 id="getdata-withconfig" tabindex="-1">getData(withConfig) <a class="header-anchor" href="#getdata-withconfig" aria-label="Permalink to &quot;getData(withConfig)&quot;">​</a></h3><blockquote><p>v0.2.9+</p></blockquote><p>Gets mind map data</p><p><code>withConfig</code>: <code>Boolean</code>, default is <code>false</code>, that is, the obtained data only includes the node tree, if <code>true</code> is passed, it will also include theme, layout, view, etc. data</p><h3 id="export-type-isdownload-filename" tabindex="-1">export(type, isDownload, fileName) <a class="header-anchor" href="#export-type-isdownload-filename" aria-label="Permalink to &quot;export(type, isDownload, fileName)&quot;">​</a></h3><blockquote><p>You need to register the <code>Export</code> plugin first</p></blockquote><p>Export</p><p><code>type</code>: the type to be exported, optional values: png, svg, json, pdf (v0.2.1+), smm (essentially also json)</p><p><code>isDownload</code>: whether to directly trigger download, Boolean value, default is <code>false</code></p><p><code>fileName</code>: (v0.1.6+) the name of the exported file, default is <code>思维导图</code> (mind map).</p><p>If it is exported as <code>png</code>, the fourth parameter can be passed:</p><p><code>transparent</code>: v0.5.7+, <code>Boolean</code>, default is <code>false</code>, Specify whether the background of the exported image is transparent</p><p>If it is exported as <code>svg</code>, the fourth parameter can be passed:</p><p><code>plusCssText</code>: Additional <code>CSS</code> style. If there is a <code>dom</code> node in <code>svg</code>, you can pass in some styles specific to the node through this parameter</p><p>If it is exported as <code>json</code> or <code>smm</code>, the fourth parameter can be passed:</p><p><code>withConfig</code>: <code>Boolean</code>, default is <code>true</code>, Specify whether the exported data includes configuration data, otherwise only pure node tree data will be exported</p><h3 id="topos-x-y" tabindex="-1">toPos(x, y) <a class="header-anchor" href="#topos-x-y" aria-label="Permalink to &quot;toPos(x, y)&quot;">​</a></h3><blockquote><p>v0.1.5+</p></blockquote><p>Convert the coordinates of the browser&#39;s visible window to coordinates relative to the canvas.</p><h3 id="addplugin-plugin-opt" tabindex="-1">addPlugin(plugin, opt) <a class="header-anchor" href="#addplugin-plugin-opt" aria-label="Permalink to &quot;addPlugin(plugin, opt)&quot;">​</a></h3><blockquote><p>v0.4.0+</p></blockquote><p>Register plugin, Use <code>MindMap.usePlugin</code> to register plugin only before instantiation, The registered plugin will not take effect after instantiation, So if you want to register the plugin after instantiation, you can use the <code>addPlugin</code> method of the instance.</p><h3 id="removeplugin-plugin" tabindex="-1">removePlugin(plugin) <a class="header-anchor" href="#removeplugin-plugin" aria-label="Permalink to &quot;removePlugin(plugin)&quot;">​</a></h3><blockquote><p>v0.4.0+</p></blockquote><p>Remove registered plugin, Plugins registered through the <code>usePlugin</code> or <code>addPlugin</code> methods can be removed.</p><h3 id="appendcss-key-str" tabindex="-1">appendCss(key, str) <a class="header-anchor" href="#appendcss-key-str" aria-label="Permalink to &quot;appendCss(key, str)&quot;">​</a></h3><blockquote><p>v0.12.0+</p></blockquote><ul><li><p><code>key</code>: The unique identifier is required for removal.</p></li><li><p><code>str</code>: CSS style string.</p></li></ul><p>Add necessary CSS styles. This style will be dynamically added to the page during instantiation, and will also be added to the SVG source code when exported as SVG.</p><h3 id="removeappendcss-key" tabindex="-1">removeAppendCss(key) <a class="header-anchor" href="#removeappendcss-key" aria-label="Permalink to &quot;removeAppendCss(key)&quot;">​</a></h3><blockquote><p>v0.12.0+</p></blockquote><ul><li><code>key</code>: The unique identifier.</li></ul><p>Remove the added CSS styles.</p></div></div></main><footer class="VPDocFooter" data-v-39a288b8 data-v-e257564d><!--[--><!--]--><!----><nav class="prev-next" aria-labelledby="doc-footer-aria-label" data-v-e257564d><span class="visually-hidden" id="doc-footer-aria-label" data-v-e257564d>Pager</span><div class="pager" data-v-e257564d><a class="VPLink link pager-link prev" href="/mind-map-docs/en/api/constructor/constructor-props.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Prev</span><span class="title" data-v-e257564d>Props</span><!--]--></a></div><div class="pager" data-v-e257564d><a class="VPLink link pager-link next" href="/mind-map-docs/en/api/node.html" data-v-e257564d><!--[--><span class="desc" data-v-e257564d>Next</span><span class="title" data-v-e257564d>Node class</span><!--]--></a></div></nav></footer><!--[--><!--]--></div></div></div><!--[--><!--]--></div></div><footer class="VPFooter has-sidebar" data-v-5d98c3a5 data-v-e315a0ad><div class="container" data-v-e315a0ad><p class="message" data-v-e315a0ad>MIT License.</p><p class="copyright" data-v-e315a0ad>Copyright © 2024-present mind-map team</p></div></footer><!--[--><!--]--></div></div>
    <script>window.__VP_HASH_MAP__=JSON.parse("{\"api_batchexecution.md\":\"CpL1COYr\",\"api_command.md\":\"CKB-R46V\",\"api_constructor_constructor-methods.md\":\"DsZDelzJ\",\"api_constructor_constructor-options.md\":\"8BBZ4ug7\",\"api_constructor_constructor-props.md\":\"D30kKm6b\",\"api_keycommand.md\":\"BJXgXO7R\",\"api_markdown.md\":\"CxqgUeiH\",\"api_node.md\":\"DhCkvc5p\",\"api_render.md\":\"DnyWiV1e\",\"api_textedit.md\":\"D9vZBSlW\",\"api_utils.md\":\"CW7ERQHD\",\"api_view.md\":\"BPCnCodU\",\"api_xmind.md\":\"BFFbvkZa\",\"blog.md\":\"BBj4F7hw\",\"client.md\":\"BgQFFUpL\",\"cloudstorage.md\":\"Do58UUNI\",\"course_course1.md\":\"DFK8EDkp\",\"course_course10.md\":\"4v-csSOz\",\"course_course11.md\":\"B9xEVvAJ\",\"course_course12.md\":\"DDIJIJPj\",\"course_course13.md\":\"5IBP-rao\",\"course_course14.md\":\"CC1fwQgh\",\"course_course15.md\":\"D5iYWEY8\",\"course_course16.md\":\"D0wQG2pw\",\"course_course17.md\":\"CJA6F6_y\",\"course_course18.md\":\"BH4yZs16\",\"course_course19.md\":\"UqRwkPwr\",\"course_course2.md\":\"B0W9BdDf\",\"course_course20.md\":\"BPg5uQc2\",\"course_course21.md\":\"CoLYAOVb\",\"course_course22.md\":\"CawwY_0h\",\"course_course23.md\":\"BocE6ttf\",\"course_course24.md\":\"DuSI03vb\",\"course_course25.md\":\"C9dnrwy7\",\"course_course26.md\":\"BkCJk6Hs\",\"course_course27.md\":\"L9aum18K\",\"course_course28.md\":\"DgOxC1eG\",\"course_course29.md\":\"C1QXQu6Q\",\"course_course3.md\":\"DfnuN21w\",\"course_course30.md\":\"B7H4qLQB\",\"course_course31.md\":\"cXaDZjGo\",\"course_course4.md\":\"6pgAw2LX\",\"course_course5.md\":\"ZP4Q9iiA\",\"course_course6.md\":\"C0fxBt7J\",\"course_course7.md\":\"Cuph-HFp\",\"course_course8.md\":\"ChoIxP8Z\",\"course_course9.md\":\"d4gQ06de\",\"en_api_batchexecution.md\":\"B6K-Ywh_\",\"en_api_command.md\":\"6BhEX64G\",\"en_api_constructor_constructor-methods.md\":\"Dc9Zw2sR\",\"en_api_constructor_constructor-options.md\":\"C82q4Cdk\",\"en_api_constructor_constructor-props.md\":\"8b47ZzdH\",\"en_api_keycommand.md\":\"PqfMHK2W\",\"en_api_markdown.md\":\"BSdO0S88\",\"en_api_node.md\":\"DwuEkWyP\",\"en_api_render.md\":\"CPakJa2d\",\"en_api_textedit.md\":\"Biai4Xq7\",\"en_api_utils.md\":\"C--N5wPv\",\"en_api_view.md\":\"DvZzXTZJ\",\"en_api_xmind.md\":\"CkYNjH7w\",\"en_blog.md\":\"Dt38_25W\",\"en_client.md\":\"JcBCndJr\",\"en_index.md\":\"1cVIsvnz\",\"en_plugins_about.md\":\"BUWGpGGx\",\"en_plugins_associativeline.md\":\"DQ7fnKYH\",\"en_plugins_checkbox.md\":\"kVZQRXcu\",\"en_plugins_cooperate.md\":\"D9rwtYWm\",\"en_plugins_demonstrate.md\":\"CVaF8Flk\",\"en_plugins_doexport.md\":\"1engnPn2\",\"en_plugins_drag.md\":\"Bj7U6mi5\",\"en_plugins_excel.md\":\"Bb_v4SjM\",\"en_plugins_formula.md\":\"Bn2eMOAc\",\"en_plugins_freemind.md\":\"DMclvg-J\",\"en_plugins_handdrawnlikestyle.md\":\"ixNqBFyB\",\"en_plugins_keyboardnavigation.md\":\"B9FIErI0\",\"en_plugins_minimap.md\":\"Ckq8cxpd\",\"en_plugins_nodeimgadjust.md\":\"BN6ddm5D\",\"en_plugins_notation.md\":\"C2O7-yEU\",\"en_plugins_numbers.md\":\"Bq4rxFQ-\",\"en_plugins_outerframe.md\":\"dcqaEX5L\",\"en_plugins_painter.md\":\"BPjDkK8N\",\"en_plugins_rainbowlines.md\":\"KB27VR0m\",\"en_plugins_richtext.md\":\"C0xjUJ1Y\",\"en_plugins_scrollbar.md\":\"BTY-WRIo\",\"en_plugins_search.md\":\"oq27WGrC\",\"en_plugins_select.md\":\"BBkzcWfg\",\"en_plugins_themes.md\":\"Cy2wJvDH\",\"en_plugins_touchevent.md\":\"-uR6MDoD\",\"en_plugins_watermark.md\":\"hn2ARitq\",\"en_start_changelog.md\":\"mcHyuMP6\",\"en_start_contribute.md\":\"BRc1GZjd\",\"en_start_deploy.md\":\"CyMntFzl\",\"en_start_introduction.md\":\"BPmJhLYM\",\"en_start_question.md\":\"BNQEVRBY\",\"en_start_start.md\":\"t8Q0EWDl\",\"help_help1.md\":\"BUHB1yvC\",\"help_help2.md\":\"DnwTpD2s\",\"help_help3.md\":\"D5oc_2Ls\",\"help_help4.md\":\"CP5zGCjY\",\"help_help5.md\":\"DNO2uUSL\",\"help_help6.md\":\"BNhR7MF-\",\"index.md\":\"DGLAchCw\",\"plugins_about.md\":\"DYoMr7Ye\",\"plugins_associativeline.md\":\"DYIBkSHw\",\"plugins_checkbox.md\":\"BT_i6sXp\",\"plugins_cooperate.md\":\"Dm0944RZ\",\"plugins_demonstrate.md\":\"D7m2ejPJ\",\"plugins_doexport.md\":\"D9DXqnn7\",\"plugins_drag.md\":\"DvHqkvDB\",\"plugins_excel.md\":\"Bso-N9QM\",\"plugins_formula.md\":\"4-1aZ69F\",\"plugins_freemind.md\":\"tQ8FmSjZ\",\"plugins_handdrawnlikestyle.md\":\"SRc_y_hE\",\"plugins_keyboardnavigation.md\":\"D_O1v-Qq\",\"plugins_minimap.md\":\"CEavzRCD\",\"plugins_nodeimgadjust.md\":\"B5AEnFgt\",\"plugins_notation.md\":\"Da_S_k1x\",\"plugins_numbers.md\":\"DERrL3cA\",\"plugins_outerframe.md\":\"cQsgask1\",\"plugins_painter.md\":\"CyBPCEqq\",\"plugins_rainbowlines.md\":\"DQGhN6QN\",\"plugins_richtext.md\":\"CM1KiL10\",\"plugins_scrollbar.md\":\"C_0OnaGr\",\"plugins_search.md\":\"D_bnL8rb\",\"plugins_select.md\":\"CukB6FsP\",\"plugins_themes.md\":\"HPkGe_d3\",\"plugins_touchevent.md\":\"Cdz_63tT\",\"plugins_watermark.md\":\"1UCHago3\",\"sponsor.md\":\"DEcuXGmu\",\"start_changelog.md\":\"DcdV5GNW\",\"start_contribute.md\":\"V6_XRS2W\",\"start_deploy.md\":\"jxHFH1Ph\",\"start_introduction.md\":\"Dn2yO_zK\",\"start_question.md\":\"bkFCXRSd\",\"start_start.md\":\"lmUjiRmx\"}");window.__VP_SITE_DATA__=JSON.parse("{\"lang\":\"en-US\",\"dir\":\"ltr\",\"title\":\"SimpleMindMap\",\"description\":\"A VitePress site\",\"base\":\"/mind-map-docs/\",\"head\":[],\"router\":{\"prefetchLinks\":true},\"appearance\":true,\"themeConfig\":{\"search\":{\"provider\":\"local\",\"options\":{\"locales\":{\"root\":{\"placeholder\":\"搜索文档\",\"translations\":{\"button\":{\"buttonText\":\"搜索文档\",\"buttonAriaLabel\":\"搜索文档\"},\"modal\":{\"searchBox\":{\"resetButtonTitle\":\"清除查询条件\",\"resetButtonAriaLabel\":\"清除查询条件\",\"cancelButtonText\":\"取消\",\"cancelButtonAriaLabel\":\"取消\"},\"startScreen\":{\"recentSearchesTitle\":\"搜索历史\",\"noRecentSearchesText\":\"没有搜索历史\",\"saveRecentSearchButtonTitle\":\"保存至搜索历史\",\"removeRecentSearchButtonTitle\":\"从搜索历史中移除\",\"favoriteSearchesTitle\":\"收藏\",\"removeFavoriteSearchButtonTitle\":\"从收藏中移除\"},\"errorScreen\":{\"titleText\":\"无法获取结果\",\"helpText\":\"你可能需要检查你的网络连接\"},\"footer\":{\"selectText\":\"选择\",\"navigateText\":\"切换\",\"closeText\":\"关闭\",\"searchByText\":\"搜索提供者\"},\"noResultsScreen\":{\"noResultsText\":\"无法找到相关结果\",\"suggestedQueryText\":\"你可以尝试查询\",\"reportMissingResultsText\":\"你认为该查询应该有结果？\",\"reportMissingResultsLinkText\":\"点击反馈\"}}}}}}}},\"locales\":{\"root\":{\"label\":\"中文\",\"description\":\"一个强大的Web思维导图\",\"themeConfig\":{\"logo\":\"/logo.png\",\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/wanglin2/mind-map\"}],\"footer\":{\"message\":\"MIT License.\",\"copyright\":\"Copyright © 2024-present mind-map team\"},\"outline\":{\"level\":[2,3]},\"nav\":[{\"text\":\"在线使用\",\"link\":\"https://wanglin2.github.io/mind-map/\"},{\"text\":\"客户端\",\"link\":\"/client\"},{\"text\":\"云存储版\",\"link\":\"/cloudStorage\"},{\"text\":\"开始\",\"link\":\"/start/introduction\",\"activeMatch\":\"/start/\"},{\"text\":\"教程\",\"link\":\"/course/course1\",\"activeMatch\":\"/course/\"},{\"text\":\"API\",\"link\":\"/api/constructor/constructor-options\",\"activeMatch\":\"/api/\"},{\"text\":\"插件\",\"link\":\"/plugins/themes\",\"activeMatch\":\"/plugins/\"},{\"text\":\"使用帮助\",\"link\":\"/help/help1\",\"activeMatch\":\"/help/\"},{\"text\":\"赞助\",\"link\":\"/sponsor\"},{\"text\":\"更多\",\"items\":[{\"text\":\"博客\",\"link\":\"/blog\"},{\"text\":\"理想文档\",\"link\":\"https://github.com/wanglin2/lx-doc\"},{\"text\":\"意见反馈\",\"link\":\"https://github.com/wanglin2/mind-map/issues\"}]}],\"sidebar\":{\"/start/\":[{\"text\":\"简介\",\"link\":\"/start/introduction\"},{\"text\":\"开始\",\"link\":\"/start/start\"},{\"text\":\"常见问题\",\"link\":\"/start/question\"},{\"text\":\"部署\",\"link\":\"/start/deploy\"},{\"text\":\"贡献\",\"link\":\"/start/contribute\"},{\"text\":\"更新记录\",\"link\":\"/start/changelog\"}],\"/course/\":[{\"text\":\"基本使用\",\"link\":\"/course/course1\"},{\"text\":\"操作节点内容\",\"link\":\"/course/course2\"},{\"text\":\"插入/删除节点、前进回退\",\"link\":\"/course/course3\"},{\"text\":\"设置节点样式的简单方式\",\"link\":\"/course/course4\"},{\"text\":\"设置节点样式的更多方式\",\"link\":\"/course/course31\"},{\"text\":\"设置基础样式\",\"link\":\"/course/course5\"},{\"text\":\"显示水印\",\"link\":\"/course/course6\"},{\"text\":\"开启节点自由拖拽\",\"link\":\"/course/course7\"},{\"text\":\"开启节点富文本编辑\",\"link\":\"/course/course8\"},{\"text\":\"修改鼠标滚轮的行为\",\"link\":\"/course/course9\"},{\"text\":\"主题\",\"link\":\"/course/course10\"},{\"text\":\"结构\",\"link\":\"/course/course11\"},{\"text\":\"如何渲染一个大纲\",\"link\":\"/course/course12\"},{\"text\":\"快捷键\",\"link\":\"/course/course13\"},{\"text\":\"如何渲染一个小地图\",\"link\":\"/course/course14\"},{\"text\":\"如何渲染一个右键菜单\",\"link\":\"/course/course15\"},{\"text\":\"如何渲染富文本的悬浮工具栏\",\"link\":\"/course/course16\"},{\"text\":\"导入和导出\",\"link\":\"/course/course17\"},{\"text\":\"如何持久化数据\",\"link\":\"/course/course18\"},{\"text\":\"插入和扩展节点图标\",\"link\":\"/course/course19\"},{\"text\":\"如何自定义节点内容\",\"link\":\"/course/course20\"},{\"text\":\"如何复制、剪切、粘贴\",\"link\":\"/course/course21\"},{\"text\":\"如何实现搜索、替换\",\"link\":\"/course/course22\"},{\"text\":\"如何渲染滚动条\",\"link\":\"/course/course23\"},{\"text\":\"如何开发一个插件\",\"link\":\"/course/course24\"},{\"text\":\"关于概要\",\"link\":\"/course/course25\"},{\"text\":\"如何实现AI生成节点内容\",\"link\":\"/course/course26\"},{\"text\":\"快捷键操作如何传递自定义参数\",\"link\":\"/course/course27\"},{\"text\":\"如何动态修改自定义元素的大小\",\"link\":\"/course/course28\"},{\"text\":\"局域网docker部署解决HTTPS问题的一种方法\",\"link\":\"/course/course29\"},{\"text\":\"如何通过代码激活节点\",\"link\":\"/course/course30\"}],\"/api/\":[{\"text\":\"API\",\"items\":[{\"text\":\"构造函数\",\"base\":\"/api/constructor/constructor-\",\"items\":[{\"text\":\"实例化选项\",\"link\":\"options\"},{\"text\":\"属性\",\"link\":\"props\"},{\"text\":\"方法\",\"link\":\"methods\"}]},{\"text\":\"Node类\",\"link\":\"/api/node\"},{\"text\":\"Render类\",\"link\":\"/api/render\"},{\"text\":\"Command类\",\"link\":\"/api/command\"},{\"text\":\"TextEdit类\",\"link\":\"/api/textEdit\"},{\"text\":\"View类\",\"link\":\"/api/view\"},{\"text\":\"KeyCommand类\",\"link\":\"/api/keyCommand\"},{\"text\":\"BatchExecution类\",\"link\":\"/api/batchExecution\"},{\"text\":\"XMind解析\",\"link\":\"/api/xmind\"},{\"text\":\"Markdown解析\",\"link\":\"/api/markdown\"},{\"text\":\"内置工具方法\",\"link\":\"/api/utils\"}]}],\"/plugins/\":[{\"text\":\"免费\",\"items\":[{\"text\":\"Themes 插件\",\"link\":\"/plugins/themes\"},{\"text\":\"RichText插件\",\"link\":\"/plugins/richText\"},{\"text\":\"Export 插件\",\"link\":\"/plugins/doExport\"},{\"text\":\"Drag插件\",\"link\":\"/plugins/drag\"},{\"text\":\"Select 插件 \",\"link\":\"/plugins/select\"},{\"text\":\"AssociativeLine 插件\",\"link\":\"/plugins/associativeLine\"},{\"text\":\"KeyboardNavigation插件\",\"link\":\"/plugins/keyboardNavigation\"},{\"text\":\"MiniMap插件\",\"link\":\"/plugins/miniMap\"},{\"text\":\"Watermark插件\",\"link\":\"/plugins/watermark\"},{\"text\":\"TouchEvent插件\",\"link\":\"/plugins/touchEvent\"},{\"text\":\"NodeImgAdjust插件\",\"link\":\"/plugins/nodeImgAdjust\"},{\"text\":\"Search插件\",\"link\":\"/plugins/search\"},{\"text\":\"Painter插件\",\"link\":\"/plugins/painter\"},{\"text\":\"Scrollbar插件\",\"link\":\"/plugins/scrollbar\"},{\"text\":\"Formula插件\",\"link\":\"/plugins/formula\"},{\"text\":\"Cooperate插件\",\"link\":\"/plugins/cooperate\"},{\"text\":\"RainbowLines插件\",\"link\":\"/plugins/rainbowLines\"},{\"text\":\"Demonstrate插件\",\"link\":\"/plugins/demonstrate\"},{\"text\":\"OuterFrame插件\",\"link\":\"/plugins/outerFrame\"}]},{\"text\":\"收费\",\"items\":[{\"text\":\"关于收费插件\",\"link\":\"/plugins/about\"},{\"text\":\"HandDrawnLikeStyle插件\",\"link\":\"/plugins/handDrawnLikeStyle\"},{\"text\":\"Notation插件\",\"link\":\"/plugins/notation\"},{\"text\":\"Numbers插件\",\"link\":\"/plugins/numbers\"},{\"text\":\"Freemind插件\",\"link\":\"/plugins/freemind\"},{\"text\":\"Excel插件\",\"link\":\"/plugins/excel\"},{\"text\":\"Checkbox插件\",\"link\":\"/plugins/checkbox\"}]}],\"/help/\":[{\"text\":\"概要/关联线\",\"link\":\"/help/help1\"},{\"text\":\"客户端\",\"link\":\"/help/help2\"},{\"text\":\"打开预览在线文件\",\"link\":\"/help/help3\"},{\"text\":\"复制粘贴\",\"link\":\"/help/help4\"},{\"text\":\"导出\",\"link\":\"/help/help5\"},{\"text\":\"如何编辑数学公式\",\"link\":\"/help/help6\"}]},\"darkModeSwitchLabel\":\"暗黑模式\",\"outlineTitle\":\"大纲\",\"docFooter\":{\"prev\":\"上一篇\",\"next\":\"下一篇\"}}},\"en\":{\"label\":\"English\",\"description\":\"A powerful web mind map\",\"themeConfig\":{\"logo\":\"/logo.png\",\"socialLinks\":[{\"icon\":\"github\",\"link\":\"https://github.com/wanglin2/mind-map\"}],\"footer\":{\"message\":\"MIT License.\",\"copyright\":\"Copyright © 2024-present mind-map team\"},\"outline\":{\"level\":[2,3]},\"nav\":[{\"text\":\"Online use\",\"link\":\"https://wanglin2.github.io/mind-map/\"},{\"text\":\"Client\",\"link\":\"/en/client\"},{\"text\":\"Cloud storage\",\"link\":\"/cloudStorage\"},{\"text\":\"Start\",\"link\":\"/en/start/introduction\",\"activeMatch\":\"/en/start/\"},{\"text\":\"Course\",\"link\":\"/course/course1\",\"activeMatch\":\"/course/\"},{\"text\":\"API\",\"link\":\"/en/api/constructor/constructor-options\",\"activeMatch\":\"/en/api/\"},{\"text\":\"Plugins\",\"link\":\"/en/plugins/themes\",\"activeMatch\":\"/en/plugins/\"},{\"text\":\"Help\",\"link\":\"/help/help1\",\"activeMatch\":\"/help/\"},{\"text\":\"Sponsor\",\"link\":\"/sponsor\"},{\"text\":\"More\",\"items\":[{\"text\":\"Blog\",\"link\":\"/en/blog\"},{\"text\":\"Ideal Document\",\"link\":\"https://github.com/wanglin2/lx-doc\"},{\"text\":\"Issues\",\"link\":\"https://github.com/wanglin2/mind-map/issues\"}]}],\"sidebar\":{\"/en/start/\":[{\"text\":\"Introduction\",\"link\":\"/en/start/introduction\"},{\"text\":\"Start\",\"link\":\"/en/start/start\"},{\"text\":\"Question\",\"link\":\"/en/start/question\"},{\"text\":\"Deploy\",\"link\":\"/en/start/deploy\"},{\"text\":\"Contribute\",\"link\":\"/en/start/contribute\"},{\"text\":\"Changelog\",\"link\":\"/en/start/changelog\"}],\"/course/\":[{\"text\":\"基本使用\",\"link\":\"/course/course1\"},{\"text\":\"操作节点内容\",\"link\":\"/course/course2\"},{\"text\":\"插入/删除节点、前进回退\",\"link\":\"/course/course3\"},{\"text\":\"设置节点样式的简单方式\",\"link\":\"/course/course4\"},{\"text\":\"设置节点样式的更多方式\",\"link\":\"/course/course31\"},{\"text\":\"设置基础样式\",\"link\":\"/course/course5\"},{\"text\":\"显示水印\",\"link\":\"/course/course6\"},{\"text\":\"开启节点自由拖拽\",\"link\":\"/course/course7\"},{\"text\":\"开启节点富文本编辑\",\"link\":\"/course/course8\"},{\"text\":\"修改鼠标滚轮的行为\",\"link\":\"/course/course9\"},{\"text\":\"主题\",\"link\":\"/course/course10\"},{\"text\":\"结构\",\"link\":\"/course/course11\"},{\"text\":\"如何渲染一个大纲\",\"link\":\"/course/course12\"},{\"text\":\"快捷键\",\"link\":\"/course/course13\"},{\"text\":\"如何渲染一个小地图\",\"link\":\"/course/course14\"},{\"text\":\"如何渲染一个右键菜单\",\"link\":\"/course/course15\"},{\"text\":\"如何渲染富文本的悬浮工具栏\",\"link\":\"/course/course16\"},{\"text\":\"导入和导出\",\"link\":\"/course/course17\"},{\"text\":\"如何持久化数据\",\"link\":\"/course/course18\"},{\"text\":\"插入和扩展节点图标\",\"link\":\"/course/course19\"},{\"text\":\"如何自定义节点内容\",\"link\":\"/course/course20\"},{\"text\":\"如何复制、剪切、粘贴\",\"link\":\"/course/course21\"},{\"text\":\"如何实现搜索、替换\",\"link\":\"/course/course22\"},{\"text\":\"如何渲染滚动条\",\"link\":\"/course/course23\"},{\"text\":\"如何开发一个插件\",\"link\":\"/course/course24\"},{\"text\":\"关于概要\",\"link\":\"/course/course25\"},{\"text\":\"如何实现AI生成节点内容\",\"link\":\"/course/course26\"},{\"text\":\"快捷键操作如何传递自定义参数\",\"link\":\"/course/course27\"},{\"text\":\"如何动态修改自定义元素的大小\",\"link\":\"/course/course28\"},{\"text\":\"局域网docker部署解决HTTPS问题的一种方法\",\"link\":\"/course/course29\"},{\"text\":\"如何通过代码激活节点\",\"link\":\"/course/course30\"}],\"/en/api/\":[{\"text\":\"API\",\"items\":[{\"text\":\"Constructor\",\"base\":\"/en/api/constructor/constructor-\",\"items\":[{\"text\":\"Options\",\"link\":\"options\"},{\"text\":\"Props\",\"link\":\"props\"},{\"text\":\"Methods\",\"link\":\"methods\"}]},{\"text\":\"Node class\",\"link\":\"/en/api/node\"},{\"text\":\"Render clas\",\"link\":\"/en/api/render\"},{\"text\":\"Command clas\",\"link\":\"/en/api/command\"},{\"text\":\"TextEdit clas\",\"link\":\"/en/api/textEdit\"},{\"text\":\"View clas\",\"link\":\"/en/api/view\"},{\"text\":\"KeyCommand clas\",\"link\":\"/en/api/keyCommand\"},{\"text\":\"BatchExecution clas\",\"link\":\"/en/api/batchExecution\"},{\"text\":\"XMind parse\",\"link\":\"/en/api/xmind\"},{\"text\":\"Markdown parse\",\"link\":\"/en/api/markdown\"},{\"text\":\"Utility methods\",\"link\":\"/en/api/utils\"}]}],\"/en/plugins/\":[{\"text\":\"Free\",\"items\":[{\"text\":\"Themes plugin\",\"link\":\"/en/plugins/themes\"},{\"text\":\"RichText plugin\",\"link\":\"/en/plugins/richText\"},{\"text\":\"Export plugin\",\"link\":\"/en/plugins/doExport\"},{\"text\":\"Drag plugin\",\"link\":\"/en/plugins/drag\"},{\"text\":\"Select plugin\",\"link\":\"/en/plugins/select\"},{\"text\":\"AssociativeLine plugin\",\"link\":\"/en/plugins/associativeLine\"},{\"text\":\"KeyboardNavigation plugin\",\"link\":\"/en/plugins/keyboardNavigation\"},{\"text\":\"MiniMap plugin\",\"link\":\"/en/plugins/miniMap\"},{\"text\":\"Watermark plugin\",\"link\":\"/en/plugins/watermark\"},{\"text\":\"TouchEvent plugin\",\"link\":\"/en/plugins/touchEvent\"},{\"text\":\"NodeImgAdjust plugin\",\"link\":\"/en/plugins/nodeImgAdjust\"},{\"text\":\"Search plugin\",\"link\":\"/en/plugins/search\"},{\"text\":\"Painter plugin\",\"link\":\"/en/plugins/painter\"},{\"text\":\"Scrollbar plugin\",\"link\":\"/en/plugins/scrollbar\"},{\"text\":\"Formula plugin\",\"link\":\"/en/plugins/formula\"},{\"text\":\"Cooperate plugin\",\"link\":\"/en/plugins/cooperate\"},{\"text\":\"RainbowLines plugin\",\"link\":\"/en/plugins/rainbowLines\"},{\"text\":\"Demonstrate plugin\",\"link\":\"/en/plugins/demonstrate\"},{\"text\":\"OuterFrame plugin\",\"link\":\"/en/plugins/outerFrame\"}]},{\"text\":\"Charge\",\"items\":[{\"text\":\"Regarding paid plugins\",\"link\":\"/en/plugins/about\"},{\"text\":\"HandDrawnLikeStyle plugin\",\"link\":\"/en/plugins/handDrawnLikeStyle\"},{\"text\":\"Notation plugin\",\"link\":\"/en/plugins/notation\"},{\"text\":\"Numbers plugin\",\"link\":\"/en/plugins/numbers\"},{\"text\":\"Freemind plugin\",\"link\":\"/en/plugins/freemind\"},{\"text\":\"Excel plugin\",\"link\":\"/en/plugins/excel\"},{\"text\":\"Checkbox plugin\",\"link\":\"/en/plugins/checkbox\"}]}],\"/help/\":[{\"text\":\"概要/关联线\",\"link\":\"/help/help1\"},{\"text\":\"客户端\",\"link\":\"/help/help2\"},{\"text\":\"打开预览在线文件\",\"link\":\"/help/help3\"},{\"text\":\"复制粘贴\",\"link\":\"/help/help4\"},{\"text\":\"导出\",\"link\":\"/help/help5\"},{\"text\":\"如何编辑数学公式\",\"link\":\"/help/help6\"}]},\"darkModeSwitchLabel\":\"Dark mode\",\"outlineTitle\":\"Outline\",\"docFooter\":{\"prev\":\"Prev\",\"next\":\"Next\"}}}},\"scrollOffset\":134,\"cleanUrls\":false}");</script>
    
  </body>
</html>